package com.kobeliu.entity;

import java.util.Arrays;

/**
 * 剑指 61
 *
 * 从若干副扑克牌中随机抽 5 张牌，判断是不是一个顺子，即这5张牌是不是连续的。2～10为数字本身，A为1，J为11，Q为12，K为13，而大、小王为 0 ，可以看成任意数字。A 不能视为 14。
 *
 * 示例 1:
 * 输入: [1,2,3,4,5]
 * 输出: True
 * 示例 2:
 * 输入: [0,0,1,2,5]
 * 输出: True
 */

public class Demo_55_sword_61 {

    public static void main(String[] args) {
        int[] nums = new int[]{0,0,1,3,4,5,6,7};
        System.out.println(isStraight(nums));
    }

    public static boolean isStraight(int[] nums) {

        //先排序
        Arrays.sort(nums);
        int len = nums.length;

        //指针
        int i = 1;
        //记录零的数量
        int temp = 0;
        int sum = 0;

        if(nums[0]==0) temp = 1;


        for(;i<len;i++){
            if(nums[i]==0){
                temp++;
            }else{
                if(nums[i-1]!=0){
                    sum = nums[i]-nums[i-1];
                    if(sum==0){
                        return false;
                    }
                    if(sum>1){
                        temp = temp-sum+1;
                        if(temp<0) return false;
                    }
                }
            }
        }
        return true;

    }


}
